Package de.yaams.maker.programm.project.tab

Source Code of de.yaams.maker.programm.project.tab.ProjectHomeTab

/**
*
*/
package de.yaams.maker.programm.project.tab;

import java.awt.BorderLayout;
import java.util.ArrayList;
import java.util.HashMap;

import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;

import de.yaams.maker.helper.JavaHelper;
import de.yaams.maker.helper.extensions.ExtentionManagement;
import de.yaams.maker.helper.gui.AE;
import de.yaams.maker.helper.gui.bcb.BcbBuilder;
import de.yaams.maker.helper.gui.dock.DockHolder;
import de.yaams.maker.helper.gui.dock.DockLinkPanel;
import de.yaams.maker.helper.gui.icons.IconCache;
import de.yaams.maker.helper.language.I18N;
import de.yaams.maker.programm.YaFrame;
import de.yaams.maker.programm.project.Project;
import de.yaams.maker.programm.project.ProjectTabEvent;
import de.yaams.maker.programm.project.objects.BasicObjectManager;
import de.yaams.maker.programm.tabs.BasicTabEvent;
import de.yaams.maker.programm.tabs.HomeTab;
import de.yaams.maker.programm.tabs.TabEvent;

/**
* @author abby
*
*/
public class ProjectHomeTab extends ProjectTab {

  private static final long serialVersionUID = -7817071123542539005L;

  /**
   * @param project
   */
  public ProjectHomeTab(Project project) {
    super(project);

    buildGui();
    addSaveButton();
  }

  /*
   * (non-Javadoc)
   *
   * @see
   * de.yaams.maker.programm.tabs.YaTab#buildBcb(de.yaams.maker.helper.gui
   * .bcb.BcbBuilder)
   */
  @Override
  protected void buildBcb(BcbBuilder bcb) {
    BasicTabEvent.buildBcb(bcb, project.getHash());
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.maker.programm.tabs.YaTab#getIcon()
   */
  @Override
  public String getIcon() {
    return project.getIcon();
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.maker.programm.tabs.YaTab#getContent()
   */
  @Override
  public JComponent getContent() {
    // load objects
    ExtentionManagement.work(Project.EXLOAD, JavaHelper.createHashStringObj("project", project));

    int c = project.getObjects().keySet().size();
    // has nothing?
    if (c == 0) {
      return new JLabel(
          I18N.t("Projekt {0} vom Projekttyp {1} enthält keine Objekte.", project.getTitle(), project.getTypeAsString()),
          IconCache.get("error", 32), JLabel.CENTER);
    }

    // build lists
    HashMap<String, ArrayList<BasicObjectManager>> elements = new HashMap<String, ArrayList<BasicObjectManager>>();

    // add all
    for (String s : project.getObjects().keySet()) {
      BasicObjectManager b = project.getObjects().get(s);
      // containts?
      if (!elements.containsKey(b.getGroup())) {
        elements.put(b.getGroup(), new ArrayList<BasicObjectManager>());
      }

      // add it
      elements.get(b.getGroup()).add(b);
    }

    // build it

    // build content
    DockHolder d = new DockHolder("project.home", elements.keySet().size(), 1);

    // add content
    for (String key : elements.keySet()) {
      ArrayList<BasicObjectManager> list = elements.get(key);
      DockLinkPanel dlp = new DockLinkPanel();
      dlp.setDock(d);
      for (final BasicObjectManager bom : list) {

        // add basic
        dlp.addLink(bom.getTitle(), bom.getIcon(), bom.getDesc() == null ? null : "<html>" + bom.getDesc(), new AE() {

          @Override
          public void run() {
            YaFrame.open(bom.getTabId());

          }
        });

      }
      dlp.buildGui(list.get(0).getGroup(), "yaams", false);
      d.add(dlp);
    }

    JPanel cont = new JPanel(new BorderLayout());
    cont.add(d, BorderLayout.CENTER);

    cont.add(
        HomeTab.createBottomDock(I18N
            .t("<ul><li>Erstelle zuerst die passenden Helden</li><li>Lege danach die Karten an.</li><li>Zum Schluss kannst du dein Spiel testen und exportieren.</li>")),
        BorderLayout.SOUTH);

    // JPanel p = new JPanel(new GridLayout(1, 1));
    // p.add();
    return cont;

  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.maker.programm.tabs.YaTab#getTitle()
   */
  @Override
  public String getTitle() {
    return project.getTitle();
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.maker.programm.tabs.YaTab#getId()
   */
  @Override
  public String getId() {
    return TabEvent.buildParameter(ProjectTabEvent.HOME, project, null);
  }

  /**
   * Save chanced, overwrite it to implement it, and call addSaveTab() to add
   * the support button
   */
  @Override
  protected void saveIntern() {
    project.save();
  }

}
TOP

Related Classes of de.yaams.maker.programm.project.tab.ProjectHomeTab

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.